11.3.1.1. Sıralı Dizide İkili Arama Fonksiyonu

Fonksiyonda adları ortadaki, sol ve sag olan üç tane yerel değişken vardır; ortadaki o anda işlemde olan dizi veya alt parçası üzerinde en ortadaki elemanın indis değerini tutmak için kullanılırken sol dizinin ilk, sag da dizinin son elemanlarının indisini tutmak için kullanılmaktadır. Başlangıçta, sol=0, sag=N-1 ve ortadaki de (N-1)/2 değerlerine sahiptirler.

int ikiliArama(veriTürü D[], int N, veriTürü aranan)
{
    int ortadaki, sol=0, sag=N-1;

    while(sol<=sag) {
          ortadaki=(sol+sag)/2;     /* ortadaki elemanın indisi hesaplanıyor */
          if(aranan == D[ortadaki])
                  return ortadaki;     /* bulundu, indis gönderiliyor */
          else if(aranan>D[ortadaki])
                  sol=ortadaki+1;
          else
                  sag=ortadaki-1;
    }

    return -1; /* bulunamaz ise -1 değeri gönderiliyor */
}